/* 
自定义vue插件
1. 如果插件是对象, 对象必须要有一个install
2. 如果插件是函数, 将这个函数当作install方法对待
*/

(() => {
  const MyPlugin =  function (Vue, options) {
    console.log('install')

    // Vue的静态方法
    Vue.myGlobalMethod = function () {
      console.log('myGlobalMethod()')
    }
  
    // 定义全局指令
    Vue.directive('my-directive', (el, binding) => {
      el.innerHTML = binding.value + '--------'
    })
  
    // 给vm定义方法
    Vue.prototype.$myMethod = function () {
      console.log('vm $myMethod()')
    }
  }

  window.MyPlugin = MyPlugin
})()

// (() => {
//   const MyPlugin = {}

//   MyPlugin.install = function (Vue, options) {
//     console.log('install')

//     // Vue的静态方法
//     Vue.myGlobalMethod = function () {
//       console.log('myGlobalMethod()')
//     }
  
//     // 定义全局指令
//     Vue.directive('my-directive', (el, binding) => {
//       el.innerHTML = binding.value + '--------'
//     })
  
//     // 给vm定义方法
//     Vue.prototype.$myMethod = function () {
//       console.log('vm $myMethod()')
//     }
//   }

//   window.MyPlugin = MyPlugin
// })()